package com.chee.plant.hibernate.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import com.chee.plant.hibernate.object.PlantFeed;
import com.chee.plant.server.HibernateSessionFactory;

/**
 * 对应PlantFeed数据库访问操作 
 * @author xue cb 
 *
 */
public class PlantFeedDAO extends BaseHibernateDAO {

	/**
	 * 根据种子id查询特定种子的信息
	 * 
	 * @param id
	 * @return 如果存在返回特定的种子实例，如果不存在返回null
	 */
	public PlantFeed getFeedById(int id) {
		Session session = HibernateSessionFactory.getSession();
		String hql = "select feed from PlantFeed as feed where feed.Id=:id";
		Query query = session.createQuery(hql);
		query.setInteger("id", id);
		PlantFeed plantFeed = (PlantFeed) query.uniqueResult();
		return plantFeed;
	}
	
	
	/**
	 * 获取所有可以从npc购买到的种子，数据库中0代表可以从npc买到，1代表不可以从npc买到。
	 * 
	 * @return 如果存在返回可以购买的种子，不存在返回null
	 */
	@SuppressWarnings("unchecked")
	public List<PlantFeed> getAllFeed() {
		Session session = HibernateSessionFactory.getSession();
		String hql = "select feed from PlantFeed as feed where feed.NpcSell=0";
		Query query = session.createQuery(hql);
		List<PlantFeed> list = query.list();
		return list;
	}

	/**
	 * 主方法，用于测试 
	 * @param args
	 */
	public static void main(String[] args) {
		
		// 1，测试getAllFeed()
		List<PlantFeed> list = new PlantFeedDAO().getAllFeed();
		System.out.println(list.size());
		
		//2, 测试 getFeedById(int id)
		PlantFeed feed = new PlantFeedDAO().getFeedById(1);
		System.out.println(feed.getPrice());
	}

}
